Virtual memory is widely used in multi-tasking Operating Systems (OS) running on modern processors. Virtual memory is a memory management technique that allows physical memory or other data storage (e.g., disk or I/O memory) to be virtualized so that each application only sees one kind of memory. This simplifies the implementation of applications and provides a better memory protection. On typical computer systems, the implementation of virtual memory must rely on a kernel data structure that maintains the mapping from virtual memory to physical memory.